38 research outputs found
Three Partition Refinement Algorithms
We present improved partition refinement algorithms for three problems: lexicographic sorting, relational coarsest partition, and double lexical ordering. Our double lexical ordering algorithm uses a new, efficient method for unmerging two sorted sets
Incremental Cycle Detection, Topological Ordering, and Strong Component Maintenance
We present two on-line algorithms for maintaining a topological order of a
directed -vertex acyclic graph as arcs are added, and detecting a cycle when
one is created. Our first algorithm handles arc additions in
time. For sparse graphs (), this bound improves the best previous
bound by a logarithmic factor, and is tight to within a constant factor among
algorithms satisfying a natural {\em locality} property. Our second algorithm
handles an arbitrary sequence of arc additions in time. For
sufficiently dense graphs, this bound improves the best previous bound by a
polynomial factor. Our bound may be far from tight: we show that the algorithm
can take time by relating its performance to a
generalization of the -levels problem of combinatorial geometry. A
completely different algorithm running in time was given
recently by Bender, Fineman, and Gilbert. We extend both of our algorithms to
the maintenance of strong components, without affecting the asymptotic time
bounds.Comment: 31 page
A simple and optimal ancestry labeling scheme for trees
We present a ancestry labeling scheme for trees. The
problem was first presented by Kannan et al. [STOC 88'] along with a simple solution. Motivated by applications to XML files, the label size was
improved incrementally over the course of more than 20 years by a series of
papers. The last, due to Fraigniaud and Korman [STOC 10'], presented an
asymptotically optimal labeling scheme using
non-trivial tree-decomposition techniques. By providing a framework
generalizing interval based labeling schemes, we obtain a simple, yet
asymptotically optimal solution to the problem. Furthermore, our labeling
scheme is attained by a small modification of the original solution.Comment: 12 pages, 1 figure. To appear at ICALP'1
Recommended from our members
A Linear-Time Algorithm for a Special Case of Disjoint Set Union ; CU-CS-261-82
AbstractThis paper presents a linear-time algorithm for the special case of the disjoint set union problem in which the structure of the unions (defined by a “union tree”) is known in advance. The algorithm executes an intermixed sequence of m union and find operations on n elements in O(m+n) time and O(n) space. This is a slight but theoretically significant improvement over the fastest known algorithm for the general problem, which runs in O(mα(m+n, n)+n) time and O(n) space, where a is a functional inverse of Ackermann's function. Used as a subroutine, the algorithm gives similar improvements in the efficiency of algorithms for solving several other problems, including two-processor scheduling, matching on convex graphs, finding nearest common ancestors off-line, testing a flow graph for reducibility, and finding two disjoint directed spanning trees. The algorithm obtains its efficiency by combining the fast algorithm for the general problem with table look-up on small sets, and requires a random access machine for its implementation. The algorithm extends to the case in which single-node additions to the union tree are allowed. The extended algorithm is useful in finding maximum cardinality matchings in nonbipartite graphs
Distributed Branching Bisimulation Minimization by Inductive Signatures
We present a new distributed algorithm for state space minimization modulo
branching bisimulation. Like its predecessor it uses signatures for refinement,
but the refinement process and the signatures have been optimized to exploit
the fact that the input graph contains no tau-loops.
The optimization in the refinement process is meant to reduce both the number
of iterations needed and the memory requirements. In the former case we cannot
prove that there is an improvement, but our experiments show that in many cases
the number of iterations is smaller. In the latter case, we can prove that the
worst case memory use of the new algorithm is linear in the size of the state
space, whereas the old algorithm has a quadratic upper bound.
The paper includes a proof of correctness of the new algorithm and the
results of a number of experiments that compare the performance of the old and
the new algorithms
Handling Conflicts in Depth-First Search for LTL Tableau to Debug Compliance Based Languages
Providing adequate tools to tackle the problem of inconsistent compliance
rules is a critical research topic. This problem is of paramount importance to
achieve automatic support for early declarative design and to support evolution
of rules in contract-based or service-based systems. In this paper we
investigate the problem of extracting temporal unsatisfiable cores in order to
detect the inconsistent part of a specification. We extend conflict-driven
SAT-solver to provide a new conflict-driven depth-first-search solver for
temporal logic. We use this solver to compute LTL unsatisfiable cores without
re-exploring the history of the solver.Comment: In Proceedings FLACOS 2011, arXiv:1109.239
On the Efficiency of a Good but Not Linear Set Union Algorithm
Consider two types of instructions for manipulating disjoint sets. FIND(x) computes the name of the (unique) set containing element x. UNION(A,B,C) combines sets A and B into a new set named C. We examinee a known algorithm for implementing sequences of these instructions. We show that if f(n) is the maximum time required by any sequence of n instructions, for some constants and , where and is a recursively defined function which satisfies as . Thus the set union algorithm is but not . Keywords and phrases: algorithm, complexity, equivalence, partition, set union, tree
Enumeration of the Elementary Circuits of a Directed Graph
An algorithm to enumerate all the elementary circuits of a directed graph is presented. The algorithm uses back-tracking with lookahead to avoid unnecessary work, and it has a time bound of when applied to a graph with vertices, edges, and elementary circuits. Keywords: Algorithm, circuit, cycle, grap
Testing Flow Graph Reducibility
Many problems in program optimizationn have been solved by applying a technique called interval analysis to the flow graph of the program. A flow graph which is susceptible to this type of analysis is called reducible. This paper describes an algorithm for testing whether a flow graph is reducible. The algorithm uses depth-first search to reveal the structure of the flow graph and a good method for computing disjoint set unions to determine reducibility from the search information. When the algorithm is implemented on a random access computer, it requires time to analyze a graph with E edges, where . The time bound compares favorably with the bound of a previously known algorithm
Finding a Maximum Clique
An algorithm for finding a maximum clique in an arbitrary graph is described. The algorithm has a worst-case time bound of for some constant , where is the number of vertices in the graph. Within a fixed time, the algorithm can analyze a graph with 2 3/4 as many vertices as the largest graph which the obvious algorithm (examining all subsets of vertices) can analyze. Keywords: Algorithm, Clique, Graph, Independent Set